home *** CD-ROM | disk | FTP | other *** search
/ Commodore Free 5 / Commodore_Free_Issue_05_2007_Commodore_Computer_Club.d64 / t.dtv hack < prev    next >
Text File  |  2023-02-26  |  7KB  |  218 lines

  1. uDTV Hacking
  2.  
  3. Here are a few pics of my own DTV
  4. Hummer project. I had an old PSOne LCD
  5. screen lying around and I thought I'd
  6. make a C64 laptop. Actually, it's more
  7. like a C64 PDA! It measures 6.5 x 6 x
  8. 1.5 inches (15.5 x 16.5 x 4 cm) when
  9. closed. It can run from an AC wall
  10. adapter or 6 NiMH AA batteries. The
  11. keyboard is hacked from a portable
  12. folding keyboard for a Jornada PDA
  13. which outputs RS-232. I'm using a PIC
  14. 16F88 to decode the signals and
  15. reencode them to PS/2 (that was an
  16. ordeal to figure out).
  17.  
  18. The PIC checks to see if an external
  19. PS/2 keyboard is connected on power
  20. up. If one is hooked up, it will route
  21. data from that instead. There is an
  22. internal ampilfied speaker as well as
  23. connections for audio and video output
  24. on the back.
  25.  
  26. There's a serial connection for a disk
  27. drive and an SD card slot in the side
  28. for a 1541-III but I haven't been able
  29. to get that to work yet. I also have a
  30. connection for a userport/joystick.
  31. The joystick in the picture is a
  32. hacked Atari keychain joystick. The
  33. mini joystick wasn't in the original
  34. plan but after I accidentally
  35. discovered it on ebay, it seemed
  36. perfect. Here's a how-to post
  37. regarding the RS232 to PS/2 keyboard
  38. hack:
  39.  
  40. http://jledger.proboards19.com/index.c
  41. gi?board=dtvh
  42. acking&action=display&thread=116778302
  43. 4
  44.  
  45. The Micro Folding Keyboard (Model#:
  46. TKB420HP) made by Micro Innovations is
  47. a small portable keyboard for
  48. attaching to a Jornada PDA. It
  49. basically has all keys needed for
  50. adapting to a DTV but unfortunately
  51. outputs RS-232 instead of PS/2. The
  52. following information describes how to
  53. interface this keyboard to DTV Hummer
  54. and possible the rest of the DTV
  55. versions. Out of the box:
  56. Disassembling the keyboard, you'll see
  57. 5 labeled connections: VCC, RTS, RXD,
  58. DCD, and GND. VCC is +5V for this
  59. unit. RXD is the line on which data is
  60. actually sent, although the keyboard
  61. won't send anything until RTS is
  62. pulled high. I do this right on the
  63. board by soldering a 1k resistor
  64. between the RTS pad and the onboard
  65. microcontroller's Vcc pad (see
  66. picture). By doing this, you only need
  67. to run three wires from the keyboard
  68. (VCC, RXD and Ground).
  69.  
  70. As far as what mechanical
  71. modificationsE I chose to cut away a
  72. lot of extra plastic from the two
  73. folding halves and superglue the sides
  74. together. This effectively created one
  75. solid piece. I also glued the
  76. flexi-ribbon flat against itself to
  77. take up less space.
  78.  
  79. Since this keyboard outputs RS-232
  80. (9600 baud, 8 data bits, 1 stop bit
  81. and no-parity), a PIC 16F88
  82. microcontroller is used to convert the
  83. data to PS/2 for the DTV. PS/2
  84. keyboards use "make" and "break" codes
  85.  
  86. One or more "make" codes is sent when
  87. a key is pressed and several "break"
  88. codes and are sent on key release. The
  89. Jornada keyboard kind of works the
  90. same way in that it uses make and
  91. break codes, unfortunately the codes
  92. are not a one for one match and must
  93. be re-mapped by the PIC.
  94.  
  95. On power up, the PIC will check to see
  96. if a regular external PS/2 is
  97. attached. If so, it will just go into
  98. "repeater" mode and pass along any
  99. signals from the PS/2 keyboard to the
  100. DTV. The PIC adds a one second delay
  101. to get rid of the pesky "V". Here's
  102. the circuit:
  103.  
  104. The diode and resistor on pin 4 are
  105. for in-circuit serial programming
  106. (ICSP) and can be left out as well as
  107. any other connections labeled ICSP.
  108. The 100k resistor on pin 11 is needed
  109. even if you decide not to mess with
  110. the external PS/2 connector, so don't
  111. leave it out. The rest is fairly
  112. straight forward. The 100uF cap may
  113. need to be larger depending on your
  114. setup. 100uF worked initially for me
  115. until I added an LCD screen to my
  116. design. The power surge on start up
  117. was too much and the keyboard would
  118. not initialize properly until I
  119. increased it to 470uF. For timing, the
  120. internal 8 MHz oscillator is used. It
  121. seems to work just fine.
  122.  
  123. Here's the HEX file:
  124. www.picobay.com/picodore64/JornadaKBD1
  125. 6F88.he x
  126.  
  127. And the source code:
  128. www.picobay.com/picodore64/JornadaKBD1
  129. 6F88.txt
  130.  
  131. Again, this is for a 16F88 and any $15
  132. JDM PIC programmer will work just
  133. fine. The source code is written in
  134. PicBasic Pro. The code could probably
  135. be reduced to half the size by
  136. constructing the send codes on the fly
  137. instead of hard coding them. The
  138. start, stop parity bit could be added
  139. automatically and each make/break code
  140. would only take up a byte instead of a
  141. word. But the 16F88 has 4K of space
  142. and I wasn't tight on space. Maybe as
  143. I add more features, I'll recode that
  144. section. And while I'm at it, I'll
  145. switch to using interrupts to get the
  146. data from the Jornada keyboard instead
  147. of just waiting for data. Obviously
  148. this is an adapted keyboard and I had
  149. to switch some of the key assignments:
  150. Today = ESC (RUNSTOP) Space = INSERT
  151. Windows key = Commodore Key FN + Right
  152. Arrow = HOME FN + CRTL + Right Arrow =
  153. CLR SCN The 4 keys in the top left are
  154. the F1 thru F4 keys, F5 thru F8 with
  155. the FN pressed. I didn't bother to
  156. implement the Numlock keypad, there
  157. didn't seem to be much point to doing
  158. so. Just for the heck of it I'm
  159. posting the PS/2 waveform of a make
  160. code for the "A" key. Channel 1 is the
  161. clock and Channel 2 is data. This is
  162. from a real PS/2 keyboard.
  163.  
  164. Here are the specs: Mainboard: Hummer
  165. DTV Construction: Hobby plywood
  166. covered in faux stainless steel
  167. contact paper Size: 6.5" x 6" x 1.5"
  168. (closed) Power: 7.5v wall adapter or 6
  169. rechargable AA NiMH batteries
  170.  
  171. Screen: 5" LCD Keyboard: 69-key QWERTY
  172. Sound: Ampilfied 1.5" 0.4W internal
  173. speaker Connections: power,
  174. userport/joystick, serial disk drive,
  175. audio/video output, headphone jack,
  176. external PS/2 keyboard, SD card slot.
  177. Addition peripherals: 1.75" x 1.5"
  178. mini Atari joystick.
  179.  
  180. Features: on screen display for volume
  181. and brightness control, auto sensing
  182. of external keyboard connection,
  183. programmable funtion keys, video
  184. selector switch. Although I plan on
  185. posting a more length write-up, for
  186. now, I'll give you just the important
  187. details: The LCD screen is from a
  188. PSOne. I'm also using on LCD's board
  189. audio amp to drive the speaker. The
  190. LCD is what ultimately drove my power
  191. requirements. Almost the entire
  192. circuit for the LCD uses 5v except for
  193. one IC which needs between 7v and 8v
  194. to generate H-Sync.
  195.  
  196. The keyboard was a bitch to figure out
  197. and will be the subject of a post of
  198. it's own. It's from a Jornada foldaway
  199. keyboard made by Micro Innovations. In
  200. terms of construction, I had cut away
  201. a lot of extra plastic and superglue
  202. the two halves together making a
  203. single solid keyboard.
  204.  
  205. The keyboard normally interfaces with
  206. a HP Jornada via a RS-232 link and
  207. special driver. I was able to capture
  208. all the output codes and program a
  209. 16F88 PIC microcontroller to re-map
  210. and output with the appropriate PS/2
  211. protocol. On power up, the PIC checks
  212. if there is an extrenal keyboard
  213. attached. If so, it ignores data from
  214. the onboard keyboard.
  215.  
  216.  
  217. ...end...
  218.  
  219.